A conventional integrated circuit (IC), such as an application specific integrated circuit (ASIC), is typically divided into different functional logic units known as islands. Each island implements a specific function of the IC, such as direct memory access (DMA) transfer or data compression, for example. A typical IC also contains dedicated circuitry for collecting and outputting diagnostic information, so that the internal state of the IC can be determined during test or failure analysis. Such circuitry is typically referred to as a trace gathering logic unit or trace gathering island. Trace data from each island is typically transported along an n-bit bus and fed into a multiplexor. An internal trace select register connected to control inputs of the multiplexor selects which island's trace data is to be forwarded to the trace gathering island via a further n bit bus. The trace gathering island 30 then records the incoming trace data by latching it into registers on every clock cycle, from there, the trace data can be stored in a buffer to be analyzed later.